package co.edu.udistrital.negocio.util;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collection;
import java.util.UUID;

import co.edu.udistrital.negocio.excepcion.ConcesionarioExcepcion;
import co.edu.udistrital.negocio.modelo.InfoLineaVehiculoRevisionTO;
import co.edu.udistrital.negocio.modelo.MantenimientoVO;
import co.edu.udistrital.negocio.persistencia.InfoLineaVehiculoRevisionView;
import co.edu.udistrital.negocio.persistencia.ManejadorConexion;
import co.edu.udistrital.negocio.persistencia.MantenimientoDAO;


/**
 * Clase que me permite generar los objetos VO y DAO para el acceso a la base de datos.
 * @author Alejo Gamboa B
 *
 */
public class ClaseViewCreate {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		GeneradorROE gen = new GeneradorROE();
		GeneradorDAO dao = new GeneradorDAO();
		String [] pks =null;
		try {
			gen.generateROE("select l.nombre nombre_linea, rl.costo, v.nombre_propietario, v.apellido_propietario, v.identificacion_propietario, v.placa, m.fecha_entrada, e.nombre from mantenimiento m, vehiculo v, linea l, revision r, revision_linea rl, estado e where v.id = m.vehiculo_id and l.id = v.linea_id and r.id = m.revision_id and r.id = rl.revision_id and l.id = rl.linea_id and e.id = m.estado_id", 
							"InfoCostoVehiculo", 
							"co.edu.udistrital.negocio");
			//pks = new String[]{"id"};
			//dao.generateDAO("vehiculo", "co.edu.udistrital.negocio",pks);
			//createdIDS(1);
			//insertar();
			//verDetalle();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void createdIDS(int cant){
		for ( int i=0 ; i<cant ; i++ ){
			System.out.println(UUID.randomUUID().toString());
		}
	}
	
	public static void insertar () throws ConcesionarioExcepcion{
		MantenimientoDAO dao = new MantenimientoDAO(ManejadorConexion.obtenerConexion());
		MantenimientoVO vo = new MantenimientoVO();
		vo.setId("7524f1cd-1ed1-41af-b3b0-fc62a603c995");
		vo.setVehiculoId("d68cee42-59f3-403a-9d4a-91486f0ad9a5");
		vo.setRevisionId("f2a58008-879d-4733-b32c-add564c09cdc");
		vo.setEstadoId("2d3a373a-998b-4d87-aafe-867b549c7c48");
		vo.setFechaEntrada(Calendar.getInstance()); 
		vo.setFechaSalida(Calendar.getInstance());
		vo.setRecibidoPor("Juan Perez");
		vo.setComentarios("Vehiculo entregado en perfectas condiciones");
		vo.setKilometraje(BigDecimal.valueOf(5259d));
		int rows = dao.insert(vo); 
		System.out.println("Filas insertadas: "+rows);
	}
	
	public static void verDetalle(){   
		try {
			InfoLineaVehiculoRevisionView lineaView = new InfoLineaVehiculoRevisionView(ManejadorConexion.obtenerConexion());
			Collection<InfoLineaVehiculoRevisionTO> listaVehiculos = lineaView.queryByWhere("id_revision='f2a58008-879d-4733-b32c-add564c09cdc' group by nombre_linea");
			System.out.println(listaVehiculos);

        }catch (Exception ex) {
            ex.printStackTrace();
        }
	}
	
}
